It is generally known in the art to provide a computer readable format file that includes definitions of geometries. For example, a file format may include computer graphic metafile (CGM). This CGM file includes graphic information that the computer processes to create an output, on either a computer display or other output device, of a graphical picture. The CGM file can be created by any number of generally known graphics programs. Furthermore, a CGM file can be interpreted by numerous known computer programs running on generally known personal or workstation computers using microprocessors, for example a microprocessor such as the Pentium III® microprocessor having an internal clock speed of about 500 MHz.
The CGM file includes logical information that can be used by the computer to produce a graphical output. In particular, the CGM file includes instructions to produce vectors that are displayed on a computer output device. These vectors can be used to define any number of geometries, such as circles, polygons, solid lines, or dashed lines. With reference to FIG. 1, a circle can be displayed on a computer display or output while being defined by the CGM file in several different ways. For example, a first circle 10 may be defined as a circle having a discrete center point and radius that the program, processing a CGM file, draws on the computer display. Alternatively, a second circle 12 may be defined by any number of arcs, such as three arcs, which are closely spaced or interconnected when drawn on the computer display. The second circle 12 is defined by separate and distinct arcs in the CGM file. Alternatively, a third circle 14 output may actually be defined by a polygon in the CGM file. A fourth circle 16 may include a plurality of connected lines segments that appear as a circle on the computer output. A fifth circle 18 in the CGM file may include a plurality of line segments that are disconnected but that appear as a circle on the computer display. A CGM file may define a circle in these or any number of means. Regardless of the means by which the CGM file has stored the circle, the user sees the output as a circle.
The different ways of storing the circle create vastly different amounts of information in the CGM file. In particular, simply defining what appears to be a circle as a circle in the CGM file produces much less data than defining the circle as a plurality of disconnected line segments.
Any number of computer programs produce CGM files, which define graphical outputs viewable by a user. Each of these different computer programs produces CGM files, which may define different segments or objects using vastly different techniques. One consequence of this is that computer programs that define single objects as multiple interconnecting segments produce large and inefficient CGM files that require more time to process and display on a computer. Furthermore, a user in the next step who needs to access and use the information stored in the CGM file needs to be able to interpret the plurality of CGM object representations to understand that a particular object is there. That is, rather than simply interpreting a file that defines an actual circle, the program will also need to recognize that a circle can be defined by a plurality of arcs or lines, and furthermore that those arcs or lines may be connected or disjoint depending upon the program that produced the CGM file.
These complexities and inefficiencies in the CGM files can be produced by any plurality of means. In particular, many computer aided design (CAD) programs include their own proprietary graphics representation techniques. These CAD programs provide only rudimentary or inefficient CGM file exporting capabilities. Therefore, the CGM files exported include inefficiencies produced by the CAD programs when they convert their proprietary format into the CGM file format. In addition, authors themselves may use cut and paste techniques that produce overlapping and duplicate objects in the CGM file. All of these inaccuracies, duplications, and inefficiencies are not easily detected by the user. As discussed above, a circle will always appear as a circle when the computer displays the CGM file, although the CGM file may define the circle in any number of ways.
It would therefore be desirable to be able to produce CGM files that are substantially coherent in defining particular objects. It is also desired to produce these coherent CGM files without requiring the standardization of the programs that produce the initial CGM files. Therefore, it is desired to have a program that can interpret the objects and segments in a first or parent CGM file and produce a second or child CGM file that is both simpler and smaller in size than the parent CGM file. Such a child CGM file would also standardize how an object is defined eliminating the problem of multiple representations for the same object.